home *** CD-ROM | disk | FTP | other *** search
/ SuperHack / SuperHack CD.bin / CODING / GRAPHICS / VOXRAY.ZIP / GLOBALS.H < prev    next >
Encoding:
C/C++ Source or Header  |  1995-07-31  |  3.3 KB  |  99 lines

  1. #ifndef _GLOBALS_
  2. #define _GLOBALS_
  3. #include "ray.h"
  4.  
  5. #ifdef __cplusplus
  6. #define g_var extern "C"
  7. #else
  8. #define g_var extern
  9. #endif
  10.  
  11. g_var pobject the_player; // object which holds the numero uno player
  12.  
  13. g_var short Number_Of_Textures;
  14. g_var wall_entry     *wall; // The wall textures
  15. g_var USHORT Number_Of_FTs;
  16. g_var wall_entry     *floortex; // The floor textures
  17.  
  18. g_var short WINDOW_HEIGHT; // The screen size constants
  19. g_var short WINDOW_MIDDLE;
  20. g_var short WINDOW_WIDTH; // the width of the window
  21. g_var short WINDOW_MIDDLEW; // the center of the window on the x axis
  22. g_var angle_type HORIZ_VIEW_RANGE;
  23. g_var long SCALE_FACTOR; //used for sprites
  24. g_var short VERTICAL_VIEW_RANGE;
  25. g_var unsigned long VERTICAL_SCALE;
  26. g_var angle_type VERTICAL_VIEW_ANGLE;
  27.  
  28. g_var Ptr buff;
  29. g_var Byte  *sliver_texture; // pointer to texture being rendered
  30. g_var int sliver_column;        // index into texture i.e. which column of texture
  31. g_var int sliver_top;           // starting Y position to render at
  32. g_var int sliver_scale;         // overall height of sliver
  33. g_var int sliver_ray;           // current ray being cast
  34. g_var int sliver_clip;          // index into texture after clipping
  35. g_var Byte *scale_row;           // row of scale value look up table to use
  36. g_var Byte * sliver_light; // Index to palette with correct level of 
  37.     //light to draw
  38. g_var MYFIXED sliver_inc_y; // incrementer to y pos in bitmap
  39. g_var long sliver_and_x, sliver_and_y; // values to make sure we don't run off texture
  40.  
  41. g_var long * distance_table; // Stuff for floor drawing
  42.  
  43. //g_var long * movement_table;
  44.  
  45. g_var long  *tan_table;              // tangent tables used to compute initial
  46. g_var long  *inv_tan_table;          // intersections with ray
  47.  
  48. g_var long  *cos_table;              // used to cancel out fishbowl effect
  49.  
  50. g_var long  *inv_cos_table;          // used to compute distances by calculating
  51. g_var long  *inv_sin_table;          // the hypontenuse
  52.  
  53. g_var long    *rcos_table;
  54. g_var long    *rsin_table;
  55.  
  56. g_var Byte * * pal_table; // The light palette array
  57.  
  58. g_var MYFIXED   *height_table; // scales wall height relative to distance
  59.  
  60. g_var MYFIXED   *middle_table; // used to correct for looking up + down
  61.  
  62. g_var MYFIXED y_inv_trans; // variable to help calculate speed at which to move across wall texture
  63.  
  64. g_var MYFIXED x_inv_trans; // same but for floors
  65.  
  66. // Globals to hold the world!
  67.  
  68. g_var USHORT Number_Of_Vectors;
  69. g_var USHORT Number_Of_Sidedefs;
  70. g_var USHORT Number_Of_Linedefs;
  71. g_var USHORT Number_Of_Sectors;
  72. g_var USHORT Number_Of_Segs;
  73. g_var USHORT Number_Of_SSectors;
  74. g_var USHORT Number_Of_Nodes;
  75.  
  76. g_var vector2 * Vector_List;
  77.  
  78. g_var sidedef * Sd_List;
  79.  
  80. g_var linedef * Ld_List;
  81.  
  82. g_var sector * Sector_List;
  83.  
  84. g_var seg * Seg_List;
  85.  
  86. g_var ssector * SS_List; // no, this is not a reference to a Nazi secret police census report.
  87.  
  88. g_var bsp_node * bsp_tree; // The mother of all data structures- the binary space partition                                // tree
  89.                       // By day, a simple runtime allocated array- but by night, a static
  90.                       // binary tree we will use to render at warp speed
  91.  
  92. g_var long bsp_start_node; // holds the first node in the bsp, usually 0
  93.  
  94. g_var tex_mark * tex_mark_table;
  95.  
  96. g_var wall_entry * sky_texture;
  97.  
  98. #endif
  99.